/*
 *  Funciones para buscar unidad
 */

$(function() {

	$('#txt_buscar_unidad').keypress(function(key) {
		return key.keyCode != 13
	});

	$('#txt_buscar_unidad').autocomplete({
		source: buscarUnidad,
		minLength: 3,
		delay: 800,
		select: seleccionaResultado
	});

	$('#silabo_carrera_id').change(function() {
		$('#txt_buscar_unidad').val('');
		$('#target').val('');
	});

});

function buscarUnidad(request, response) {
	cargandoUnidad(true);
	$.ajax({
		url: backendController + '/unidad/buscar',
		type: 'POST',
		async: false,
		data: { UnidadNombre: request.term, Carrera: $('#silabo_carrera_id').val() },
		success: function (data) {
			cargandoUnidad(false);
			response(muestraUnidades(data));
		},
		error: function (data) {
			cargandoUnidad(false);
		}
	});
}

function cargandoUnidad(cargando, targetId) {
	var element = $('#txt_buscar_unidad').parent();
	if (cargando) {
		$(element).find('.clear_bg_loading').css('display', 'inline-block');
		$(element).find('.clear_bg').css('display', 'none');
	} else {
		$(element).find('.clear_bg_loading').css('display', 'none');
		$(element).find('.clear_bg').css('display', 'inline-block');
	}
}

function muestraUnidades(data) {
	var lista = $.parseJSON(data);
	var items = new Array();
	
	if(lista.length == 0)
		alert('No existen coincidencias en la malla curricular vigente de la carrera seleccionada');
	else {
		for (var i = 0; i < lista.length; i++) {
			var unidad = lista[i];
			var item = {
				id: unidad['id'],
				label: unidad['titulo'] ,
				value: unidad['titulo']
			};
			items[i] = item;
		}
	}

	return items;
}

function seleccionaResultado(event, ui) {
	$(this).val(ui.item.label);
	$('#target').val(ui.item.id);
	return false;
}
